package com.suemi.missile.common.message;

public enum MessageType {

  NOP((byte) 0), // 无用的消息，直接丢弃
  PING((byte) 1),
  PONG((byte) 2), // 心跳消息
  SEARCH_REQ((byte) 3),
  SEARCH_RESP((byte) 4); // 检索消息

  private byte value;

  public static MessageType from(byte value) {
    switch (value) {
      case 0:
        return NOP;
      case 1:
        return PING;
      case 2:
        return PONG;
      case 3:
        return SEARCH_REQ;
      case 4:
        return SEARCH_RESP;
      default:
        throw new IllegalArgumentException("invalid message type : "+value);
    }
  }

  MessageType(byte value) {
    this.value = value;
  }

  public byte value() { return this.value; }
}

